import type { MaterialModel } from './models';

import { requestClient } from '#/api/request';

/**
 * 获取物料数据集合
 * @param params 查询参数
 * @returns 返回查询结果
 */
export async function getMaterialListApi(params?: any) {
  return requestClient.get<MaterialModel[]>('/mes/master/material/list', {
    params,
  });
}

/**
 * 分页查询物料数据集合
 * @param params 分页查询参数
 * @returns 返回查询结果
 */
export async function getMaterialPagedListApi(params?: PageParams) {
  return requestClient.get<PaginationResult<MaterialModel>>(
    '/mes/master/material/list-page',
    {
      params,
    },
  );
}

/**
 * 获取产品数据集合
 * @returns 返回查询结果
 */
export async function getFinishedMaterialListApi() {
  return requestClient.get<MaterialModel[]>('/mes/master/material/list', {
    params: { type: 1 },
  });
}

/**
 * 获取半成品数据集合
 * @returns 返回查询结果
 */
export async function getSemiFinishedMaterialListApi() {
  return requestClient.get<MaterialModel[]>('/mes/master/material/list', {
    params: { type: 2 },
  });
}

/**
 * 获取原材料数据集合
 * @returns 返回查询结果
 */
export async function getRawMaterialListApi() {
  return requestClient.get<MaterialModel[]>('/mes/master/material/list', {
    params: { type: 3 },
  });
}

/**
 * 创建物料
 * @param data 要创建的物料
 * @returns 返回结果
 */
export async function createMaterialApi(data: any) {
  return requestClient.post<boolean>('/mes/master/material', data);
}

/**
 * 更新物料
 * @param id 物料 Id
 * @param data 要更新的物料
 * @returns 返回结果
 */
export async function updateMaterialApi(id: number, data: any) {
  return requestClient.put<boolean>(`/mes/master/material/${id}`, data);
}

/**
 * 删除物料
 * @param id 物料 Id
 * @returns 返回结果
 */
export async function deleteMaterialApi(id: number) {
  return requestClient.delete<boolean>(`/mes/master/material/${id}`);
}
